package com.ruoyi.modules.mapper;

import com.ruoyi.modules.domain.Credit;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 学生贷款申请表 数据层
 *
 * @author tlgen
 */
public interface CreditMapper {
    /**
     * 根据条件分页查询学生贷款数据
     *
     * @param credit 学生贷款数据信息
     * @return 学生贷款数据集合信息
     */
    public List<Credit> selectCreditList(Credit credit);

    /**
     * 根据学生姓名查询学生贷款数据
     *
     * @param userName 学生贷款
     * @return 学生贷款数据集合信息
     */
    public List<Credit> selectCreditByName(String userName);

    /**
     * 根据学生贷款数据ID查询信息
     *
     * @param creditId 学生贷款数据ID
     * @return 学生贷款数据
     */
    public Credit selectCreditById(Long creditId);

    /**
     * 根据学生贷款数据duringYear查询信息
     *
     * @param duringYear
     * @return 学生贷款数据
     */
    public Credit selectCreditByDuringYearAndUserName(@Param("duringYear") String duringYear, @Param("userName") String userName);


    /**
     * 根据用户名查询最新添加的一条记录
     * @return
     */
    public Credit selectNewCreateByUserName(@Param("userName") String userName);

    /**
     * 通过学生贷款ID删除学生贷款数据信息
     *
     * @param creditId 学生贷款数据ID
     * @return 结果
     */
    public int deleteCreditById(Long creditId);

    /**
     * 批量删除学生贷款数据信息
     *
     * @param creditIds 需要删除的学生贷款数据ID
     * @return 结果
     */
    public int deleteCreditByIds(Long[] creditIds);

    /**
     * 新增学生贷款数据信息
     *
     * @param credit 学生贷款数据信息
     * @return 结果
     */
    public int insertCredit(Credit credit);

    /**
     * 修改学生贷款数据信息
     *
     * @param credit 学生贷款数据信息
     * @return 结果
     */
    public int updateCredit(Credit credit);

    /**
     * 修改身份证照片正面
     *
     * @param creditId 用户名
     * @param identityPathOfFront 头像地址
     * @return 结果
     */
    public int updateCreditIdentityFileOfFront(@Param("creditId") Long creditId, @Param("identityPathOfFront") String identityPathOfFront);


    /**
     * 修改身份证照片反面
     *
     * @param creditId 用户名
     * @param identityPathOfReverse 头像地址
     * @return 结果
     */
    public int updateCreditIdentityFileOfReverse(@Param("creditId") Long creditId, @Param("identityPathOfReverse") String identityPathOfReverse);

    /**
     * 上传word文件
     * @param creditId
     * @param uploadWordPath
     * @return
     */
    public int updateCreditUploadWord(@Param("creditId") Long creditId, @Param("uploadWordPath") String uploadWordPath, @Param("uploadWordName") String uploadWordName);

    /**
     * 保存已签章的pdf
     * @param creditId
     * @param pdfWithSignaturePath
     * @param pdfWithSignatureName
     * @return
     */
    public int updatePdfWithSignature(@Param("creditId") Long creditId, @Param("pdfWithSignaturePath") String pdfWithSignaturePath, @Param("pdfWithSignatureName") String pdfWithSignatureName);

    /**
     * 更新借款人电子签名
     * @param creditId
     * @param firstSignature
     * @return
     */
    public int updateFirstSignature(@Param("creditId") Long creditId, @Param("firstSignature") String firstSignature);


    /**
     * 更新资助中心电子签名
     * @param creditId
     * @param secondSignature
     * @return
     */
    public int updateSecondSignature(@Param("creditId") Long creditId, @Param("secondSignature") String secondSignature);

    /**
     * 更新回执单
     * @param creditId
     * @param uploadReceiptWord
     * @return
     */
    public int updateUploadReceiptWord(@Param("creditId") Long creditId, @Param("uploadReceiptWord") String uploadReceiptWord);

    /**
     * 更新录取通知书
     * @param creditId
     * @param letterOfAdmission
     * @return
     */
    public int updateLetterOfAdmission(@Param("creditId") Long creditId, @Param("letterOfAdmission") String letterOfAdmission);

    /**
     * 更新贫困材料证明
     * @param creditId
     * @param certificat
     * @return
     */
    public int updateCertificat(@Param("creditId") Long creditId, @Param("certificat") String certificat);

    /**
     * 更新家庭户口本
     * @param creditId
     * @param householdRegistrationBook
     * @return
     */
    public int updateHouseholdRegistrationBook(@Param("creditId") Long creditId, @Param("householdRegistrationBook") String householdRegistrationBook);

}

